home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-03-06 | 7.2 KB | 171 lines | [TEXT/GEOL] |
- Item 2183173 3-Oct-90 14:05PDT
-
- From: D2086 Efficient Field Svc, C Faith,PRT
-
- To: MACAPP.TECH$ MacApp Technical
-
- Sub: RE: Inside Out/MacApp (Long)
-
- Andrew,
-
- I hope that it is indeed andrew who sent this message, but there was no name in
- the closing.
-
- I have worked extensively with Inside Out and MacApp. I have looked at the
- problem of integration from many perspectives.
-
- There are no pat answers to the questions you ask. Too much depends on the
- data you are using and what uses you intend to put it to.
-
- Where TDocument fits in is also a very complex issue.
-
- My personal opinion is that TDatabase should indeed descend from TDocument, but
- first some background:
-
- Bruce "Tog" Tognazzini in his article "Principles to Design by", September
- AppleDirect, talks about Don Normans concepts of there being 3 conceptual
- models at work in an application. The Design Model, the designers concept of
- the application at work, the System Image which is the integration of the
- design model into the application itself, and last but definately not lead the
- User Model which is the users concept of how things work.
-
- Enter TDocument, just what is this thing? Does it represent an entity in the
- Design Model, the User Model or both. It really represents an entity in the
- Design Model that lets MacApp users create a User Model that is consistent with
- other Macintosh Applications.
-
- Here are some of the UserModel - Design Model action pairs that TDocument
- handles.
-
- USER ACTION DESIGN ACTION
- Choose Print menu item TDocument DoMenuCommand with cPrint cmd
-
- User expects the frontmost window's data to be printed in an appropriate form.
- Usually this means a WYSIWYG representation of the data that appears on the
- screen, though sometimes this is not appropriate.
-
- Double Click Document from finder Calls TApplication handle finder request
- which calls OpenOld which makes a TDocument
- via DoMakeDocument that corresponds to the
- finder document.
-
- User expects the application that handles that type of icon to open so that he
- can do some work with it. The document he clicked on should be opened
- automatically by the application. This should be the same as starting the
- application and then opening the document from the file menu.
-
- Close the only open window Calls TDocument close for the TDocument
- which owns the window.
-
- User expects that the disk representation of this document will now be closed
- so that he does not have to close this himself.
-
- Choose Save menu item Calls TDocument DoMenuCommand with command
- cSave, resulting in the posting of a
- TSaveDocCommand which in turn calls
- TDocument.Save
-
- The user expects that the data associated with the topmost window will be saved
- to his disk so that he will be able to find it later.
-
- Choose Revert menu item Calls TDocument DomenuCommand eventually
- resulting in a call to TDocument.Revert.
-
- The user expects to see the data that was there before he made some foolish
- changes he wishes he did not make.
-
- Notice that there are really two types of mappings here that relate to
- TDocument, actions that relate to a disk ICON and actions that relate to the
- data in the topmost window. These are two entirely different concepts.
-
- They are often associated in a one to one relation in such applications as
- WriteNow, Canvas, MacPaint, even AppleLink itself. This is why TDocument
- handles both of these cases.
-
- So where does Inside Out fit in.
-
- The best place to begin is to decide which if any of the two groups of actions
- that relate to TDocument and user actions might be related to Inside Out.
-
- One thing that can be said for certain is that there will always be a one to
- one relationship between an Inside Out database and a macintosh ICON. The real
- unknown is what the application will do with that data.
-
- To really understand this we must discuss another subject, that which Jeff
- Alger in his May 1990 Framework's article "Using Model-View_Controller with
- MacApp" describes as Documentness. Documentness relates to the data in the
- topmost window, that is that data which the user can expect to be saved when he
- chooses the save command. I prefer to think of these as Saveable Entities and
- not documents.
-
- If an application uses an Inside Out database to represent only one Saveable
- Entity then it is easy to see that a TDocument representing the entire database
- would be a natural.
-
- The problem comes when an Inside Out database represents many (possibly
- thousands of saveable entities), where does TDocument fit in now.
-
- I still submit that a TDocument representing the whole database is desirable.
- This will allow the existing MacApp framework to be used reasonably well.
- Things like double clicking on a database file ICON will do the right thing.
-
- I don't think that this should necesarily be the only TDocument. There should
- also probably be a TDocument for each Saveable Entity represented by a window.
- What these sub-TDocuments represent depends on the application and may change
- depending on the context.
-
- For example there might be a window that contains a list of customer
- information any of which can be editted at the same time with no further action
- on the part of the user. In this case the TDocument really represents the
- entire list of customers. In another case there might be only one customer in
- the window, the TDocument would at this time represent this one customer.
-
- If we think in terms of what the User would expect to happen as a result of a
- save operation this becomes a little easier to think about.
-
- In the case of a list of customers when 5 have been changed a save operation
- would expect to save all 5 customers.
-
- Jeff makes the very good point that "There can be no mixing and matching of
- documents within a window"
-
- What this means in terms of Don Norman's conceptual models is that all efforts
- should be made to ensure that the Design Model completely supports a consistent
- User Model.
-
- What actually will be save should never be ambiguous. It never will be if
- there is one and only one TDocument per window. There can be many windows per
- document just not the other way around.
-
- Unfortunately MacApp's TDocument is much harder to coerce into this abstract
- Saveable Entity concept than it should be. MacApp not only assumes that each
- TDocument represents a disk file it also assumes the format of that disk file
- and how it should be read into a TDocument. Not very nice for an abstract
- class.
-
- In summary, there should be one TDocument representing the entire Inside Out
- database and another for each Saveable Entity represented in the application.
- There should never be more than one TDocument per window.
-
- I hope this mud has not weighed the discussion down even further,
-
- I remain, as ever,
- Curtis Faith
-
- P.S. I would really like to get a workshop together at the MADA conference to
- discuss just these issues in REAL DEPTH.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-